Many telecommunication components used in cellular and landline telephone networks are designed to efficiently transmit voice signals over voice communication channels. For example, a digital voice coder (vocoder) uses linear predictive coding techniques to represent voice signals. These linear predictive coders filter out noise (non-voice signals) while compressing and estimating the frequency components of the voice signals before being transmitted over the voice channel.
It is sometimes desirable to transmit both audio signals and digital data over a wireless telecommunications network. For example, when a cellular telephone user calls “911” for emergency assistance, the user may wish to send digital location data to a call center over the same channel used to verbally explain the emergency conditions to a human operator. However, it can be difficult to transmit digital data signals over the voice channel of a wireless network because such signals are subject to several types of distortion.
For example, a digital data signal traveling over the voice channel of a wireless network can be distorted by vocoder effects caused by the voice compression algorithm. In addition, digital data signals can be distorted by network effects caused by poor RF conditions and/or heavy network traffic. These distortions introduce bit errors that can be overcome using techniques such as forward error correction (FEC) and repeated transmission of bit sequences.
Because there are many kinds of vocoders (e.g., EVRC, AMR, etc.) and many possible network conditions, it is difficult to predict the quality of the voice channel and the associated bit error rate in advance. In addition, the quality of a voice channel can vary rapidly over time. Therefore, it is difficult to design an efficient FEC scheme that minimizes the number overhead bits required for error correction, while at the same time providing acceptable transmission performance in a low-quality channel environment. For example, an FEC scheme with very few overhead bits for error correction may provide acceptable performance over a high-quality channel with few errors to correct, but if the channel quality degrades, the number of bit errors may increase to a level requiring many redundant retransmissions before a particular information sequence is successfully delivered without errors.